The present invention is generally directed to remote desktop environments. More particularly, the present invention can allow a remote desktop to be shared among a number of clients.
A remote desktop is a desktop that is executed on a remote server but made accessible locally via a remote display protocol. A number of remote display protocols are available for accessing a remote desktop including Microsoft's Remote Desktop Protocol (RDP), Citrix's Independent Computing Architecture (ICA), VMware's PCoIP, etc. These remote display protocols define techniques for transferring a desktop's display data to the client where it is displayed and for transferring input received at the client back to the desktop on the server. As a result, the remote desktop will appear as if it were a local desktop.
A similar technique can be employed to provide a remote application (or published application). Unlike in a remote desktop scenario in which the entire desktop will be transferred for display on the client, in a remote application scenario, only the user interface of the application is transferred for display. Because a remote display protocol will be used in a similar manner in either the remote desktop or remote application scenario, for purposes of the present disclosure as well as the claims, a remote desktop should be construed as encompassing both remote desktops and remote applications.
In typical scenarios, a user will employ a remote desktop client on a local computing device to establish a remote display protocol connection for accessing a remote desktop. The establishment of the remote display protocol connection will typically require the user to provide credentials that will be employed to log the user into the desktop. Therefore, there is a one-to-one relationship between the user and the remote desktop. If the user desired to share the remote desktop, it would be necessary to employ a separate application such as VNC. In such cases, the local computing device would have to decode the remote display protocol communications to display the remote desktop on the local computing device and then encode the display data (e.g., using VNC) for transmission to another computing device. This would result in significant processing on the local computing device.